Apache Camel-এ Common Enterprise Integration Patterns (EIPs) যেমন Content-Based Router, Splitter, Aggregator, এবং Message Filter ব্যবহৃত হয়। এগুলি বিভিন্ন মেসেজ এবং ডেটা প্রবাহকে পরিচালনা করতে সাহায্য করে। নিচে প্রতিটি EIP এর সংক্ষিপ্ত বিবরণ এবং Apache Camel-এ তাদের ব্যবহারের উদাহরণ দেওয়া হলো।
বর্ণনা: Content-Based Router মেসেজের কনটেন্ট অনুযায়ী বিভিন্ন গন্তব্যে মেসেজগুলোকে রাউট করে। এটি নির্ধারণ করে কোন মেসেজটি কোন পথে যাবে।
উদাহরণ:
from("direct:start")
.choice()
.when(simple("${body} contains 'urgent'"))
.to("direct:urgent")
.when(simple("${body} contains 'normal'"))
.to("direct:normal")
.otherwise()
.to("direct:default");
এই উদাহরণে, মেসেজের কনটেন্ট অনুযায়ী এটি বিভিন্ন গন্তব্যে পাঠানো হচ্ছে।
বর্ণনা: Splitter একটি একক মেসেজকে একাধিক অংশে ভাগ করে এবং প্রতিটি অংশকে আলাদাভাবে প্রক্রিয়া করে। এটি সাধারণত একটি তালিকা বা অ্যারে থেকে একাধিক মেসেজ তৈরি করতে ব্যবহৃত হয়।
উদাহরণ:
from("direct:start")
.split(body().tokenize(","))
.to("log:splitter");
এই উদাহরণে, একটি কমা দ্বারা পৃথক করা তালিকাকে আলাদা মেসেজে ভাগ করা হচ্ছে এবং প্রতিটি অংশ লগ করা হচ্ছে।
বর্ণনা: Aggregator বিভিন্ন মেসেজকে একত্রিত করে একটি একক মেসেজ তৈরি করে। এটি একাধিক মেসেজের তথ্য সংগ্রহ করে একটি সামগ্রিক ফলাফল তৈরি করতে ব্যবহৃত হয়।
উদাহরণ:
from("direct:start")
.aggregate(header("correlationId"), new MyAggregationStrategy())
.completionSize(3) // 3টি মেসেজ আসার পর একত্রিত হবে
.to("log:aggregated");
এখানে, correlationId
এর ভিত্তিতে মেসেজগুলোকে একত্রিত করা হচ্ছে, এবং তিনটি মেসেজ আসার পর ফলাফল দেখা যাবে।
বর্ণনা: Message Filter একটি নির্দিষ্ট শর্তের ভিত্তিতে মেসেজগুলোকে বাদ দেয়। এটি শুধুমাত্র নির্দিষ্ট শর্ত পূরণ করা মেসেজগুলোকে অগ্রাধিকার দেয়।
উদাহরণ:
from("direct:start")
.filter(simple("${body} contains 'important'"))
.to("log:filtered");
এই উদাহরণে, শুধুমাত্র "important" শব্দ যুক্ত মেসেজগুলোকে প্রক্রিয়া করা হচ্ছে এবং বাকিগুলো বাদ দেওয়া হচ্ছে।
Apache Camel এ এই EIPs ব্যবহার করে আপনি আপনার মেসেজ প্রবাহকে আরও কার্যকরভাবে পরিচালনা করতে পারেন। প্রতিটি প্যাটার্ন আলাদা আলাদা সমস্যার সমাধান করতে সহায়ক, এবং এগুলির সঠিক ব্যবহার আপনার অ্যাপ্লিকেশনের দক্ষতা বৃদ্ধি করে।